pub手册4.4.2,涉及的是 Write Leveling(写时序校准),它是用于解决 DDR3/DDR4 系统中的时序问题 的一种技术。具体来说,Write Leveling 通过调整时钟(CK)和数据采样时钟(DQS)之间的延迟,确保它们在每个 SDRAM 芯片中正确对齐。
1. 问题背景:Fly-By 拓扑和信号偏移
在多 SDRAM DDR3/DDR4 系统中,信号(如时钟、地址、控制信号)通常采用 Fly-By 拓扑 进行布线。该拓扑有以下优点:
- 减少了 stub(支路)的数量和长度,有助于改善信号完整性。
- 写数据和时钟信号可以等延迟地传递到每个 SDRAM,但是这种布局可能导致时钟和数据采样信号(DQS)之间的偏移(skew),从而影响到时序要求,尤其是 tDQSS、tDSS 和 tDSH 这些时序参数。
Write Leveling 就是用来补偿这种偏移,确保每个 SDRAM 上的时钟(CK)与数据采样时钟(DQS)对齐。
2. Write Leveling 的工作原理
在 Write Leveling 过程中,PUB(PHY Unit Block) 使用 SDRAM 的写时序校准功能,通过以下方式进行操作:
- CK_t / CK_c 和 DQS_t / DQS_c 信号 由 SDRAM 同时采样,并通过数据总线(DQ)反馈给 PUB。
- DQS_t / DQS_c 脉冲 会发送到 DRAM(内存芯片),同时增加(或者减少)DQS 信号的延迟,直到检测到 0 到 1 的过渡(transition)。
- 这个 0 到 1 的过渡 表示时钟的上升沿成功地采样到了 DQS 的上升沿,确保时序要求 tDQSS 被满足。
3. 内建算法(Built-in Algorithm)
PUB 的 写时序校准算法 通过以下步骤训练每个 rank(内存通道):
- 逐个训练 rank:每次只训练一个 rank,所有字节(bytes)同时训练。
- 将每个 rank 的所有 SDRAM 设置为 写时序校准模式,然后开始扫 DQS 脉冲,寻找 0 到 1 的过渡。
- 过渡点 表示 CK 上升沿采样了 DQS 脉冲的上升沿。
- 稳定性检查:为了确保这个结果是稳定的,算法要求采样值连续为 1 达到 8 次 LCDL 延迟(tap) 或 0.52 次 DXnGSR0.WLPRD,以过滤掉抖动和瞬时不稳定的信号。
- 步进延迟:默认情况下,DQS 脉冲的延迟按 32 LCDL taps 进行步进(由 PGCR1.WLSTEP 控制)。当检测到 0 到 1 的过渡后,算法会回到之前的延迟值并重新进行扫延迟。
- 在找到有效过渡点之后,继续扫 DQS 脉冲,直到满足稳定值的条件(连续的 8 次有效 1 或 0.52 次 WLPRD)。
- 如果延迟步进设置为 单步 LCDL 延迟(由 PGCR1.WLSTEP 控制),则每次只有 1 LCDL tap 的延迟增量。
4. 延迟补偿:
- 写时序校准 只会补偿 DQS 上升沿与下一次 CK 上升沿之间的相对延迟,这个相对延迟始终小于 1 个 tCK 周期。
- 如果 绝对延迟 大于 1 个 tCK,通常需要通过 Write Leveling Adjustment(写时序调整) 进一步补偿,这通常是在 PIR.WLADJ 步骤中完成。
5. Write Leveling Adjustment(写时序调整)
- Write Leveling Adjustment 是用来在 Write Leveling 之后进一步调整延迟的,尤其是在时钟和数据之间已经大致对齐,但由于 抖动(jitter) 或 元稳定性(metastability),可能仍然需要一些细微的调整。
6. 软件支持的 Write-Leveling(软件驱动)
PUB 还支持软件驱动的写时序校准算法,用户可以通过以下步骤执行该算法:
- 启用软件模式:通过设置
PGCR1.WLMODE
来启用软件写时序校准模式。 - 设置 DQS 输出使能:设置
DXnGCR3.DSOEMODE
为 “始终开启”。 - 设置延迟:使用
DXnLCDLR0.WLD
来设置 DQS 脉冲的延迟。 - 触发 DQS 脉冲:通过设置
PIR.WL = 0x1
来触发 DQS 脉冲。 - 监控结果:读取
DXnGSR0.WLDQ
来捕获 DRAM 的反馈结果。
软件通过这些步骤可以精确地执行写时序校准,确保系统时序要求得到满足。
7. 总结
- Write Leveling 主要通过调整时钟(CK)和数据采样时钟(DQS)之间的相对延迟,确保它们的同步对齐,补偿 Fly-By 拓扑 带来的时序偏差。
- 在进行时序校准时,通过发送一系列 DQS 脉冲并逐步调整延迟,检测时钟和数据采样信号的对齐点。
- 如果需要进一步精细调整,Write Leveling Adjustment 步骤会进一步补偿大的延迟差异。
- 软件支持的写时序校准提供了更灵活的控制,允许用户根据需要调整训练过程。
本文作者:
ICXNM-ZLin
本文链接: https://talent-tudou.github.io/2024/11/25/DDR/Data Training-Write Leveling/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
本文链接: https://talent-tudou.github.io/2024/11/25/DDR/Data Training-Write Leveling/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!